#ifndef __MYHASH_H
#define __MYHASH_H

// 用户可定义other data；
typedef struct {
	int key;
	// other data
	int first;
	int last;
} hash_msg_t;
// 如何在不修改头文件的情况下，在用户文件中自己定义数据域?



void hash_table_init();
void hash_table_destroy();

// 哈希表操作函数
void hash_add(int key, hash_msg_t *dataptr);	//添加节点，用户数据域的初始化要交给用户
void hash_find(int key, hash_msg_t **res);
void hash_del(int key);

// 用户使用此模块前，要先使用以下宏初始化一个哈希表
#define HASH_INITIALIZE 	do {hash_table_init();} while(0)
#define HASH_DESTROY 		do {hash_table_destroy();} while(0)

#endif